home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / mcu11 / gloade9a.arc / GPROGE9.ASM < prev    next >
Assembly Source File  |  1991-08-13  |  7KB  |  196 lines

  1. ******************************************************************************
  2. ******************************************************************************
  3. *                                                                            *
  4. *                    Routine to Program the E9 EPROM                         *
  5. *                                                                            *
  6. ******************************************************************************
  7. *                                                                            *
  8. * Program Name: GPROGE9.ASM                                                  *
  9. * Revision: 0.02                                                             *
  10. * Date: 3/17/90                                                              *
  11. * Written By: Robert Chretien                                                *
  12. *             Motorola MCU Applications                                      *
  13. * Assembled Under: Motorola Portable Cross Assembler (PASM) or               *
  14. *                  Motorola Freeware Assembler (AS11)                        *
  15. * Program Description:                                                       *
  16. *                                                                            *
  17. *                                                                            *
  18. *                                                                            *
  19. *                                                                            *
  20. *                                                                            *
  21. ******************************************************************************
  22. *                                                                            *
  23. * Revision Descriptions:                                                     *
  24. * 1. Rev 0.01: Original program. Modified from GPROGD3.ASM Rev 0.02.         *
  25. * 2. Rev 0.02: Gets boot ROM start address from boot reset vector rather     *
  26. *              than assuming it will always stay the same.                   *
  27. *                                                                            *
  28. *                                                                            *
  29. *                                                                            *
  30. ******************************************************************************
  31. ******************************************************************************
  32.  
  33. RAM          EQU        $0000
  34. REGS         EQU        $1000
  35. Eprom        EQU        $D000
  36. Vectors         EQU    $FFD6
  37. PortA        EQU        REGS+$00
  38. PortC        EQU        REGS+$03
  39. PortB        EQU        REGS+$04
  40. DDRC         EQU        REGS+$07
  41. PortD        EQU        REGS+$08
  42. DDRD         EQU        REGS+$09
  43. CFORC        EQU        REGS+$0B
  44. TCNT         EQU        REGS+$0E
  45. TOC2         EQU        REGS+$18
  46. TCTL1        EQU        REGS+$20
  47. TCTL2        EQU        REGS+$21
  48. TMSK1        EQU        REGS+$22
  49. TFLG1        EQU        REGS+$23
  50. TMSK2        EQU        REGS+$24
  51. TFLG2        EQU        REGS+$25
  52. PACTL        EQU        REGS+$26
  53. Baud         EQU        REGS+$2B
  54. SCCR2        EQU        REGS+$2D
  55. SCSR         EQU        REGS+$2E
  56. SCDR         EQU        REGS+$2F
  57. BPROT        EQU        REGS+$35
  58. OPTION       EQU        REGS+$39
  59. *
  60. *
  61. *
  62. TalkAddress  EQU     RAM
  63. Address      EQU     RAM+1
  64. RecordLength EQU     RAM+3
  65. CheckSum     EQU     RAM+4
  66. BoardAddress EQU     RAM+5
  67. *
  68. *
  69. *
  70.              ORG     RAM
  71. Initial      LDS     #$01FF
  72.              LDAA    #$00
  73.              STAA    BPROT
  74.              LDAA    #$30
  75.              STAA    Baud                 !With 8MHz crystal, baud=9600.
  76.              LDAA    #$0C
  77.              STAA    SCCR2                !Transmitter and receiver enabled.
  78.              LDAA    #%00100000
  79.              STAA    DDRD
  80.              STAA    PortD
  81. *
  82. *
  83. *
  84. EraseE2Prom  LDAA    #$06
  85.              STAA    $103B
  86.              STAA    $B600
  87.              LDAA    #$07
  88.              STAA    $103B
  89.              JSR     DLY10
  90.              CLR     $103B
  91. *
  92. *
  93. *
  94.              CLR     TalkAddress
  95. CalCheckSum  LDAA    #$05
  96.              STAA    CheckSum
  97. CalAddress   LDAA    PortD
  98.              LSRA
  99.              LSRA
  100.              ANDA    #%00000111
  101.              STAA    BoardAddress
  102. BootRecAddr  JSR     RecOneAddr
  103.              CBA
  104.              BNE     Boot4Last
  105.              STAA    SCDR
  106.              JSR     RecOneAddr
  107.              LDAA    CheckSum
  108.              STAA    SCDR
  109. Boot4Last    CMPB    #08
  110.              BNE     BootRecAddr
  111. *
  112. *
  113. *
  114. RecTalk      JSR     RecOneAddr
  115.              CBA
  116.              BNE     RecNewRec
  117.              STAB    SCDR
  118.              INC     TalkAddress
  119. RecNewRec    LDX     #Address
  120.              LDY     #3
  121. RecTranInfo  BSR     RecOneAddr
  122.              STAB    0,X
  123.              LDAA    TalkAddress
  124.              BEQ     IncX1
  125.              STAB    SCDR
  126. IncX1        INX
  127.              DEY
  128.              BNE     RecTranInfo
  129.              LDX     Address
  130.              BEQ     ThatsAll
  131.              LDAB    RecordLength
  132.              SUBB    #3                   !Record length contains byte
  133.              CLRA                         ! count for address and checksum.
  134.              XGDY
  135. RecData      BSR     RecOneAddr
  136.              CPX     #$CFFF
  137.              BHI     ProgData
  138.              LDAA    #$02
  139.              STAA    $103B
  140.              STAB    0,X
  141.              LDAA    #$03
  142.              STAA    $103B
  143.              BSR     DLY10
  144.              CLR     $103B
  145.              BRA     Talk
  146. ProgData     LDAA    #$20
  147.              STAA    $103B
  148.              STAB    0,X
  149.              LDAA    #$21
  150.              STAA    $103B
  151.              BSR     DLY02
  152.              CLR     $103B
  153. Talk         LDAA    TalkAddress
  154.              BEQ     IncX2
  155.              STAB    SCDR
  156. IncX2        INX
  157.              DEY
  158.              BNE     RecData
  159.              BRA     RecNewRec
  160. ThatsAll     BSR     RecOneAddr
  161.              LDX     $BFFE
  162.              JMP     0,X                  !Jump back to Boot ROM.
  163. *
  164. *
  165. *
  166. DLY02        PSHX
  167.              LDX     #670                 !2ms = 670
  168. DLY02Loop    DEX
  169.              BNE     DLY02Loop
  170.              PULX
  171.              RTS
  172. *
  173. *
  174. *
  175. DLY10        PSHX
  176.              LDX     #3350               !10ms = 3350
  177. DLY10Loop    DEX
  178.              BNE     DLY10Loop
  179.              PULX
  180.              RTS
  181. *
  182. *
  183. *
  184. RecOneAddr   LDAA    BoardAddress
  185.              LDAB    SCSR
  186.              ANDB    #%00100000
  187.              BEQ     RecOneAddr
  188.              LDAB    SCDR
  189.              RTS
  190. *
  191. *
  192. *
  193. END          EQU     *
  194.              END
  195.  
  196.